A user interface (UI) is a means by which a person can interact with a computer software application or hardware device. A good user interface may provide a “user-friendly” experience, allowing the user to interact with the software or hardware in a natural and intuitive way.
Business software or a business application is any software or set of computer programs that are used by business users to perform various business functions. The business application may be used to increase productivity, to measure productivity and to perform business functions accurately. A business application may be developed based on business objects and business process models to carryout the various business tasks or work flows needed to accomplish the intended objectives or functions of the business. User tasks or interactions (“usages”) are often not considered or modeled for the development of the business application. User tasks may be considered or recognized only post facto in the context of integration of the business application with established or standardized UI technology platforms.
Available UI notations (for example, in business application code) typically presuppose a specific UI technology, or, at least a particular user paradigm. Due to their uniformity, these available UI notations they do not lend themselves to accommodate variations or “dialects”.
User interactions (“usages”) may not be directly derived from either business process or business object models of a business application because these do not take into account usage needs or usage constraints. For the purpose of a generating UI for a software application, standard or common UI notations may be used for physical or technical entities (e.g., drop down boxes, menu bars, radio buttons, etc.,) in the UI. Concepts of user tasks may be intermingled with realizations of the physical entities in the UI. However, the user tasks merely serve as labels to denote UI elements and are not considered independent of reference to the UI elements in the context of the development of the business application itself. Common UI notations do not include the analysis needed for preparing a specific usage model. The common UI notations may be over specific and may not allow under specification or fuzziness of UI elements, which may be useful in flexible UI design.
Further, established or standardized UI platforms used by business applications support only a very limited scope of end-user UI technologies. These may be difficult and costly to modify to accommodate the changing needs of users or to incorporate new developments in UI technologies. UI elements or features may be technology specific and not interchangeable from one technology platform to another technology. For example, a JavaScript platform may by default support “drop-and-drag” and resize features in an UI, which features are not available in other platforms (e.g., in Web Dynpro). Thus, a business application may not be able to interchangeably use UIs based on different platforms without extensive or expensive recoding.
Consideration is now being given to use usage models in business application development to allow flexible generation of user interfaces and improved user interaction experience.